package com;

import java.util.LinkedList;

import com.Comparaisons.*;

/**
 * Lien entre deux modèles
 * @author florent
 */
public class Link {

	private Node node_source = null;
	private Node node_dest = null;
	
	private LinkedList<ArbreComparaisons> comparaisons = new LinkedList<ArbreComparaisons>();
	
	/**
	 * Construit un lien entre deux modèles
	 * @param modele1
	 * @param modele2
	 */
	public Link(Modele modele1,Modele modele2){
		this.node_source = Node.newNode(modele1);
		this.node_dest = Node.newNode(modele2);
	}
	
	/**
	 * Retourne un lien vers le 1er modèle
	 * @return un lien vers le 1er modèle
	 */
	public Node getNodeSource(){
		return node_source;
	}
	
	public Modele getModeleSource(){
		return node_source.getModele();
	}
	
	
	/**
	 * Retourne un lien vers le 2eme modèle
	 * @return un lien vers le 2eme modèle
	 */
	public Modele getModeleDest(){
		return node_dest.getModele();
	}
	
	public Node getNodeDest(){
		return node_dest;
	}
	
	public LinkedList<ArbreComparaisons> getArbreComparaisons(){
		return comparaisons;
	}
	
	public String toString(){
		StringBuffer sb = new StringBuffer();
		
		sb.append(node_source.getModele());
		sb.append(" => ");
		sb.append(node_dest.getModele().toString());
		sb.append("\n");
		
		for(int i=0;i<comparaisons.size();++i){
			sb.append(comparaisons.get(i).toString());
			sb.append("\n");
		}
		
		sb.append("\n");
		
		return sb.toString();
		
	}

	public void setComparaison(LinkedList<ArbreComparaisons> c) {
		this.comparaisons = c;
	}
	
}
